import export

✒️ 2025-05-23 15:18 내용 수정


export

export default Object;
export let name1, name2, ... , nameN;
export function fnName(){...};
export class className {...};
export {name1, name2, name3};

import

import ExportName from "./jsfile.js";
import * as name from "module-name"
import {export1, export2} from "./jsfile.js";
<script src="jsFile.js" type="module"></script>

import와 export를 사용한 예제

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css/style_test.css">
</head>
<body>
    <section class="member content">
        <div class="inner">
            <h2 class="title">회원정보</h2>
            <!-- wrap 안에 div.box가 추가된다 -->
            <div class="wrap"></div>
        </div>
    </section>

    <script src="js/main_test.js" type="module"></script>
</body>
</html>

객체 js 파일

// 회원 정보
let member =[
    {
        mName : '홍길동',
        birth : '19940108',
        major : '컴퓨터공학과',
        gender : true,
        exec : true,
        class : {
            math : 92,
            kor : 90,
            eng : 80,
            soc : 98
        },
        interest : ['자원봉사', '달리기']
    }, 
    {
        mName : '빌',
        birth : '19960721',
        major : '생명공학과',
        gender : true,
        exec : false,
        class : {
            math : 78,
            kor : 65,
            eng : 100,
            soc : 45
        },
        interest : ['노래', '낚시']
    }, 
    {
        mName : '아무개',
        birth : '20011005',
        major : '국어국문학과',
        gender : false,
        exec : false,
        class : {
            math : 85,
            kor : 90,
            eng : 67,
            soc : 80
        },
        interest : ['독서', '그림']
    }
]

// 멤버 배열을 내보낸다.
export default member;

작성 js 파일

// member_test.js에서 member 배열을 가져온다.
import member from './member_test.js'

// 파일로부터 member를 제대로 가져왔는지 확인
console.log(`이름 : ${member[0].mName}`);

// 태그 생성
let tag = '';

for (let i = 0; i < member.length; i++) {
    // 성별이 true면 남자, false면 여자
    let gender = (member[i].gender) ? '남자' : '여자';
    // 임원이 true면 임원, false면 아님
    let exec = (member[i].exec) ? 'exec' : '';

    // HTML에 작성할 태그 생성
    tag += `<div class="box ${exec}">
                <p class="name">이름 : <span> ${member[i].mName} </span> </p>
                <p class="birth">생일 : <span> ${member[i].birth} </span> </p>
                <p class="major">전공 : <span> ${member[i].major} </span> </p>
                <p class="interest">관심사 : <span> ${member[i].interest} </span> </p>
                <p class="gender">성별 : <span> ${member[i].gender} </span> </p>
            </div>`;

    // 태그 내용을 넣어 줄 div 선택
    let member_wrap = document.querySelector('.member .wrap');
    member_wrap.innerHTML = tag;
}

CSS

*{margin:0; padding:0; box-sizing: border-box;}

.content{width: 100%; padding:120px 0;}
.inner{width: 1170px; margin: 0 auto;}
.content .title{margin:  0 0 40px; text-align: center;}
.content .wrap{display: flex; justify-content: space-between; flex-wrap: wrap;}

.member .box{
    width: 370px; margin: 0 0 30px; padding: 30px;
    border: 5px solid #eee;
    transition: 0.3s;
    border-radius: 10px;
}

.member .box p{margin: 0 0 5px;}

/* 특정 식별자가 있을 때만 가상 요소를 추가 */
.member .box.exec .name::after{content: '(임원)'; color:deeppink;}

/* 마우스가 올라가면 박스에 그림자가 생기도록 설정 */
.member .box:hover{box-shadow: 0 0 20px #ddd; border-color: transparent;}

import 1.png
import 2.png